const fortunes = [
{ name: "大吉", weight: 10 }, // 大吉は7%の確率
{ name: "中吉", weight: 15 }, // 中吉は18%の確率
{ name: "小吉", weight: 15 }, // 小吉は20%の確率
{ name: "吉", weight: 15 }, // 吉は20%の確率
{ name: "末吉", weight: 15 }, // 末吉は18%の確率
{ name: "凶", weight: 15 }, // 凶は15%の確率
{ name: "大凶", weight: 15} // 大凶は12%の確率
];
const messagesByFortune= {
"大吉": [
"最高の運勢!今日は何をしても上手くいきます!",
"幸運があなたに微笑んでいます。挑戦あるのみ!",
"あなたの努力が実を結び、幸運が訪れます。新しい挑戦に自信を持って踏みだそう",
"今、あなたの前に広がる道は明るく、希望に満ちています。自分の信じる道を進もう!",
"あなたの行動が周囲に良い影響を与え、成功へと導かれます。前向きな気持ちを大切に。",
"周囲の人々との絆が深まり、愛と友情に満ちた日々が続きます。感謝の気持ちを忘れずに。",
"心身ともに健康で、幸せな日々が訪れます。自分を大切にし、毎日を楽しんで!",
"コーヒーがいつもより美味しく感じる日。そんな小さな幸せが積み重なり、大きな喜びへと繋がります。",
"普段通りの一日が、突然のサプライズで特別なものに。心の準備をしておいてください。",
"あなたの笑顔が周りの人々を明るく照らし、笑顔の連鎖が広がっていきます。",
"今日は素晴らしい日になるでしょう",
"あなたは幸運の持ち主です",
"あなたの未来は、今よりももっと素晴らしい! 10年後の自分に会ったら、きっとビックリするでしょう。",
"幸運の輪がぐるぐる回り、あなたの周りを取り囲みます。転んでもただでは起きません!",
"幸運の電波があなたの元に届きました。受信状態はバッチリ、あとはアンテナを伸ばすだけ!",
"げらげら笑おう",
"なんてすばらしい日だ!",
"星がキラキラ輝くように、君の未来も明るいよ!",
"チョコレートのように甘い出来事が、君を待っているよ!"
],
"中吉": [
"順調な一日。努力を忘れずに。",
"着実に前進する日です。自信を持って行動を。",
"今は静かな時期です。焦らず、心を落ち着けて過ごすことで、次第に良い結果が訪れます。",
"今の努力が未来に実を結びます。焦らず、一歩一歩進んでいきましょう",
"心を静め、周囲の状況を見極めることが大切です。冷静な判断が吉を呼びます。",
"日常の中の小さな幸せを見逃さず、大切にしましょう。それが大きな喜びへと繋がります。",
"他者との調和を大切にし、協力し合うことで、運気がさらに良くなります",
"中吉 そんなの関係ない!気持ちが大事",
"進むべき道はまだ見えなくても、焦らず自分のペースで進んでください。経験が道を開きます。",
"友との絆が深まる時期です。お互いを尊重し、支え合うことで、より良い関係が築けます。",
"新しい出会いがあるかもしれません。焦らず、自然体で接することで、良いご縁が訪れるでしょう",
"心と体のバランスを大切に。無理をせず、自分のペースで過ごすことで、健康を保つことができます",
"今は『勉強のスパイス』を効かせる時期。ちょっとした努力が、未来の大きな味付けに!焦らず、でも手を抜かずに",
"未来のあなたから手紙が届きました。『今の頑張りが、素敵な未来を作るよ。信じて進んでね!",
"友情は『信頼』と『笑顔』を混ぜた特製レシピ。時々『ありがとう』をトッピングすると、さらに美味しくなるよ!",
"恋の予感が漂っています。焦らず、自然体でいることで、素敵な出会いが待っているかも?",
"パズルのピースがぴったりはまるように、君の努力も実を結ぶよ!",
"ユニコーンのように、君の個性が輝く瞬間が訪れるよ!",
"君の笑顔が、みんなを幸せにするパズルのピースだよ!"
],
"小吉": [
"少し良いことが起きるかも。",
"穏やかに過ごせば幸運が訪れるでしょう。",
"今は少しずつ前進する時期。焦らず、一歩一歩進んでいけば、必ず道は開けます。",
"あなたは伸びしろがある",
"人間の欲求を満たそう",
"小さな気配りが大きな信頼に繋がります。周りの人々との心のつながりを大切にしましょう",
"今は小さな一歩でも、未来への大きな一歩に繋がります。希望を持ち続け、前向きに進んでいきましょう",
"もっと笑おう",
"迷うな!進め!",
"時には逃げるが勝つ",
"自身をもって行動しよう",
"大きな声で歌を歌おう",
"今の頑張りが未来を創る",
"待ち人をまつべし",
"変なことをすると運気がなくなるのできをつけよう!",
"風船が空高く飛ぶように、君の夢も大きく羽ばたくよ!",
"ドラゴンが眠っているけれど、君の夢も大きく広がるよ!"
],
"吉": [
"バランスのとれた日。焦らずに行動を。",
"周囲との調和が大切な日です。",
"新しいことに挑戦することで、成長のチャンスが広がります。自分の可能性を信じて、一歩踏み出してみましょう。",
"周りの人々との心のつながりが、あなたの力となります。感謝の気持ちを忘れずに、日々を過ごしましょう",
"素直な気持ちを大切にすることで、素敵な出会いが待っています。焦らず、自然体でいることが幸運を呼びます",
"うさぎさんがピョンと跳ねて、君の運気もグングンアップ",
"カメさんのようにゆっくりでも、確実に前進しているよ!",
"幸せの四つ葉のクローバーを見つけたら、君の運もついてくる!",
"好きな歌を歌えば、心も元気いっぱいになるよ!",
"ひまわりが太陽に向かって伸びるように、君の成長も楽しみだね",
"泣いてもいい。でもその涙を成長に変えろ",
"カエルの歌が聞こえる…でも、君の歌声はまだまだ練習が必要かも?",
"リンゴが落ちてきたけれど、君のアイデアもひらめくかも?"
],
"末吉": [
"控えめに行動すると吉。",
"大きな変化はないけれど、チャンスは隠れています。",
"ドラゴンのように強くなりたいけれど、まずはお昼寝から始めよう!",
"猫のように気まぐれだけど、今日はお手伝いをしてみようか?",
"サルが木から落ちたけれど、君は安全第一で行動しよう!",
"ペンギンが滑っているけれど、君も滑らないように気をつけてね!",
"ペンギンが滑っているけれど、君もバランスを大切にしよう!",
"ミツバチが飛んでいるけれど、君も周りをよく見て行動しよう!",
"カエルが池で遊んでいるけれど、君も自然と触れ合おう!",
"あなたは運が少し悪いです!",
"ダジャレを考えるといいかも",
],
"凶": [
"注意が必要な日。無理は禁物です。",
"焦らず慎重に。思いやりが運気を守ります。",
"良いことも悪いこともなく、慎重に進めば平穏な日々が待っている",
"慎重に行動しよう。今は焦ったり急いだりする時ではないよ。どんなことでも、ゆっくり考えて行動することが大切です。",
"困ったことやうまくいかないことがあったらあきらめずに頑張ってみよう。時間をかけて、少しずつ解決することができるよ。",
"人とのトラブルに注意。 お友達や家族とケンカしてしまうことがあるかもしれません。怒ったりせず、冷静に話し合うことが大切です。",
"心の余裕を大切に。物事がうまくいかなくても、気持ちを落ち着けて、ポジティブに考えよう。周りの人と助け合うことで、きっと良い方向に向かうよ。",
"お友達や家族との間に、うっかり**「爆弾」みたいな問題が起きるかも**。すれ違ったり、言葉がきつくなったり。今はケンカしないように、なるべく静かに過ごすのが一番!",
"凶…。ああ、やっぱり来たか…。これが運命の仕業だというのか。",
"不安や疑念に押し潰されそうな時もあるけれど、その感情に流されないこと",
"小さな言動が大きな誤解を生んだり、無意識に誰かを傷つけてしまうかもしれない",
"もう、心の中がジェットコースター並みに上下しっぱなし!",
"どんなに急いでも、急に曲がり角を曲がったら、ドリフト状態だよ!焦らず、確実に一歩ずつ前進しよう。結果が遅くても、最終的には安全第一!",
"持病の再発に注意"
],
"大凶": [
"今日は静かに過ごすのが吉。無理をせず。",
"波風を立てないことがカギになります。",
"慎重に行動しよう。 今は急いで何かをする時ではありません。どんな決断も、しっかり考えてから行動することが大切です。焦らず、冷静に進んで行きましょう。",
"トラブルに注意 思わぬトラブルや困難" ,
"お友達や家族との間で誤解やケンカが起きやすい",
"体調や気分に無理をしないようにしよう",
"言動や行動に注意を払い、やさしさと思いやりを以て接することが大切!",
"もしちょっと疲れたら、マイペースで休憩タイム",
"「ごめんね」とか「ありがとう」を大事にして、みんなと仲良くすることが、運を良くするコツだよ。",
"大凶って言うけれど、実は大丈夫!これからはポジティブエネルギー全開! 何があっても、笑って乗り越えよう!",
"何事にも慎重に取り組むことで運気がよくなるかも",
"いやなことも積極的にやることで運気が上がるかも!",
"勉強をすることで運気が上がるかも!勉強はコスパ最強の遊びだ!",
"最悪中の最悪! まるで嵐の中で船を漕いでる気分だね",
"「大凶」は、運命からの**“あっち行け!”ってサイン**。今は何をやっても、ちょっとしたことでつまずきやすいから、慎重に行動しよう。まるで落とし穴が隠れてる道を歩くような感じだよ。",
"突然、トラブルがやってくる予感…。あぁ、まるで映画の中の悪役が登場したみたい!",
"どんな些細なことでも、大きなトラブルに発展する予感。気を抜いた瞬間に、思わぬ問題が襲ってきて、どうにもならなくなっているかも。"
]
};
const colors = ["赤", "青", "緑", "黄", "金", "銀", "白", "紫","ピンク","茶色","オレンジ","桃色","スカーレット","真紅","エメラルドグリーン","人参色","みかん色","ひまわり色"]
const items = ["お守り", "財布", "スマホケース", "本", "ハンカチ", "時計", "ペン","四葉の🍀","💛","チョコレート","キーホルダー","ぐみ","ようかん","ゲーム","お守り","マグカップ"]
function weightedRandom(items) {
const totalWeight = items.reduce((sum, item) => sum + item.weight, 0);
let random = Math.random() * totalWeight;
for (let i = 0; i < items.length; i++) {
random -= items[i].weight;
if (random <= 0) {
return items[i].name;
}
}
}
const card = document.getElementById("card");
const draw = document.getElementById("draw");
const resetBtn = document.getElementById("resetBtn");
draw.addEventListener("click", () => {
// ランダムで取得
draw.style.pointerEvents = "none";
const fortune = weightedRandom(fortunes);
const messages = messagesByFortune[fortune];
const message = messages[Math.floor(Math.random() * messages.length)];
const color = colors[Math.floor(Math.random() * colors.length)];
const item = items[Math.floor(Math.random() * items.length)];
if (fortune === "大吉") {
document.body.style.backgroundColor = "#ffd700"; // 大吉:ゴールド
} else if (fortune === "中吉") {
document.body.style.backgroundColor = "#a3c4f3"; // 中吉:ライトブルー
} else if (fortune === "小吉") {
document.body.style.backgroundColor = "#c0c0c0"; // 小吉:グレー
} else if (fortune === "吉") {
document.body.style.backgroundColor = "#98fb98"; // 吉:ライトグリーン
} else if (fortune === "末吉") {
document.body.style.backgroundColor = "#ffffe0"; // 末吉:淡い黄色
} else if (fortune === "凶") {
document.body.style.backgroundColor = "#ff6666"; // 凶:赤
} else if (fortune === "大凶") {
document.body.style.backgroundColor = "#ff3333"; // 大凶:濃い赤
}
document.getElementById("fortune").textContent = fortune;
document.getElementById("message").textContent = message;
document.getElementById("color").textContent = `ラッキーカラー:${color}`;
document.getElementById("item").textContent = `ラッキーアイテム:${item}`;
card.classList.add("flipped");
resetBtn.style.display = "inline-block";
});
resetBtn.addEventListener("click", () => {
card.classList.remove("flipped");
resetBtn.style.display = "none";
draw.style.pointerEvents = "auto"; // 再度クリック許可
});